// 能够描述带有索引的数据类型
interface StringArray {
  [index: number]: string
}
// StringArray可看出此接口描述的是一个数组
let arr: StringArray = ['哪吒', '狂铁']
let myFans: string = arr[0]
console.log(myFans);

interface NumberDictionary {
  [index: string]: number;
  length: number; // 可以， length 是 number 类型
  // name: string // 错误，` name` 的 类型 与 索引 类型 返回 值 的 类型 不匹配
}
let arr5: NumberDictionary = { 'id': 1, 'money': 1000 , length: 3 }
arr5[2] = 6

interface ReadonlyStringArray {
  readonly [index: number]: string 
  name: string
}
let arr6: ReadonlyStringArray = { 0: '1', 1: '1000', 2: '3', name: '4' }
// arr6[2] = '5' // 报错 非name键只读
